package com.tesisutn.restsoft.persistencia.implementaciones.dominio;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.tesisutn.restsoft.dominio.pedido.Mesa;
import com.tesisutn.restsoft.dominio.pedido.estadosMesa.EstadoMesa;
import com.tesisutn.restsoft.persistencia.implementaciones.base.PersistenciaJPA;
import com.tesisutn.restsoft.persistencia.interfaces.dominio.PersistenciaMesa;

@Repository
public class PersistenciaMesaImp extends PersistenciaJPA<Mesa> implements PersistenciaMesa{

	public PersistenciaMesaImp() {
		super(Mesa.class);
	}

	@Override
	@Transactional(readOnly = true)
	public List<Mesa> getMesasEnEstado(EstadoMesa estado) {
		Query query = entityManager.createQuery("select m from Mesa m where m.estado = :estado");
		query.setParameter("estado", estado);
		return query.getResultList();
	}

	@Override
	@Transactional(readOnly = true)
	public List<Mesa> getMesasHabilitadas() {
		Query query = entityManager.createQuery("select m from Mesa m where m.estado = :estado");
		query.setParameter("estado", EstadoMesa.Disponible);
		return query.getResultList();
	}
}